package com.xqboss.apps.mapper.nft;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xqboss.apps.domain.nft.Nft;
import com.xqboss.apps.dto.market.MarketDto;
import com.xqboss.apps.dto.nft.NftDto;
import com.xqboss.apps.vo.market.MarketListVo;
import com.xqboss.apps.vo.nft.NftVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 藏品、装备Mapper接口
 *
 * @author xqboss
 * @date 2023-08-22
 */
@Mapper
@Repository
public interface NftMapper extends BaseMapper<Nft> {
    /**
     * 查询藏品、装备
     *
     * @param id 藏品、装备主键
     * @return 藏品、装备
     */
    public Nft selectNftById(Long id);

    /**
     * 查询藏品、装备列表
     *
     * @param nft 藏品、装备
     * @return 藏品、装备集合
     */
    public List<NftVo> selectNftList(NftDto nft);

    /**
     * 新增藏品、装备
     *
     * @param nft 藏品、装备
     * @return 结果
     */
    public int insertNft(Nft nft);

    /**
     * 修改藏品、装备
     *
     * @param nft 藏品、装备
     * @return 结果
     */
    public int updateNft(Nft nft);

    /**
     * 删除藏品、装备
     *
     * @param id 藏品、装备主键
     * @return 结果
     */
    public int deleteNftById(Long id);

    /**
     * 批量删除藏品、装备
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteNftByIds(Long[] ids);

    int addCount(@Param("nftId") Long nftId, @Param("count") int count, @Param("status") Integer status);

    int abatementCount(@Param("nftId") Long nftId, @Param("count") int count);

    List<MarketListVo> getNftList(MarketDto dto);

    boolean updateNftById(@Param("nft") Nft nft);

    int updateNftCategoryNull( @Param("categoryNftId") Integer id);
}
